home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0045 / mbmtexte.exe / SPRITLIB.DOC < prev   
Text File  |  1992-03-24  |  21KB  |  366 lines

  1. Anleitung zur Sprite-Library für Turbo-Pascal 5.X  / 6.X in der Version 1.2
  2.  
  3. (C) 1991,92 BY UWE KUHRING
  4.  
  5. Kontakt: Uwe Kuhring
  6.          Scheidter Str. 281
  7.          6602 Dudweiler Saar
  8.          Tel.: 06897/768039
  9.  
  10.          Postgiroamt Saarbrücken
  11.          BLZ 590 100 66
  12.          KNR 522 56 667
  13.          Registrierungsgebühr siehe "PREISE.DOC"
  14.  
  15. ****************************************************************************
  16. * ACHTUNG - WICHTIGE ZUSATZINFORMATION                                     *
  17. * Dies ist die SHARE-Version der Sprite-Library V1.2  (Teil d. MBM-Pakets) *
  18. * Da ich Ihnen hierzu trotzdem die Original-Anleitung der Vollversion zur  *
  19. * Durcharbeitung zur Verfügung stellen möchte, werde ich die Abweichungen  *
  20. * zur registrierten Version hier kurz aufführen.                           *
  21. * Der folgende Absatz zum Kopierverbot verliert seine Gültigkeit.          *
  22. * Die Sprite-Library wurde nicht eingeschränkt. Sogar die Source-Codes der *
  23. * Library sind in der Shareware-Version enthalten. Eine kommerzielle       *
  24. * Nutzung, bzw. eine private Nutzung über den Erprobungszeitraum hinaus,   *
  25. * setzt eine Registrierung voraus!                                         *
  26. ****************************************************************************
  27.  
  28. Zum Urheberrecht: Mit dem Erwerb dieser Vollversion 1.2 der Sprite-Library
  29. steht Ihnen ein preisgünstiges Programm zur Erstellung und Verwendung von
  30. mehrfarbigen Sprites in Turbo-Pascal zur Verfügung. Bitte beachten Sie aber,
  31. daß es sich bei diesem Programm, obwohl es vielleicht der Preis und die
  32. Mitlieferung der Sourcecodes erwarten lassen, nicht um Public-Domain,
  33. sondern um Copyright-geschützte Software handelt. Sie dürfen die Routinen
  34. benutzen, Ihren Erfordernissen anpassen und sie in Ihre Programme einbinden.
  35. Diese Programme können Sie frei verkaufen, ohne daß Lizenzabgaben entstehen.
  36. Untersagt bleibt jedoch die Weitergabe in unkompilierter Form (Source-Codes).
  37. Auch wenn Sie sich entscheiden, bei Ihrem Produkt den Source-Code mit-
  38. zuliefern, dürfen Sie die Source-Codes des MBM-Pakets nicht hinzufügen!
  39. WICHTIG: Als Source-Code wird hier auch die .TPU Version der Library
  40. verstanden! Obwohl diese ein Compilat darstellt, ist sie separat verwend-
  41. bar und bildet so einen wesentlichen Teil dieses Programmpaketes. Nur Ihre
  42. .EXE oder .COM Dateien dürfen die SPRITLIB.TPU beim Verkauf im Programmcode
  43. enthalten!
  44.  
  45. Haftung: Ich übernehme keinerlei Haftung für Schäden, die durch die
  46. Benutzung der Sprite-Library in irgendeiner Weise entstehen könnten.
  47. Insbesondere gebe ich keine Garantie der Verwendbarkeit und Funktions-
  48. fähigkeit der beschriebenen Prozeduren, auch wenn dieser Eindruck in der
  49. folgenden Beschreibung der Software entstehen sollte.
  50.  
  51. Systemanforderungen:
  52. 1. Eine Maus samt Treiber ist unbedingt erforderlich.
  53. 2. Eine Grafikkarte aus der Gruppe HGC/CGA/MCGA/EGA/VGA.
  54. 3. Natürlich Turbo-Pascal und zwar ab Version 5.0
  55.    (eventuell sind auch 4.X Versionen verwendbar, dies wurde nicht getestet)
  56. 4. DIE LIBRARY IST AUSSCHLIEßLICH IM GRAFIKMODUS EINSETZTBAR !
  57.  
  58.  
  59. Es folgt eine Beschreibung der Programme.
  60.  
  61. Allgemeines zur Library und den Zusatzprogrammen
  62.  
  63. Die vier Programme dieses Paketes ermöglichen die Editierung beliebiger
  64. farbiger Sprites. Zwölf Sprites gleichzeitig können in eigene Turbo-Pascal-
  65. Programme mit der Hilfe der Library eingebunden werden. Die Handhabung der
  66. Sprites wird mit nur 8 Prozeduren vollzogen. Dabei wird auch eine
  67. Kollisionsbearbeitung angeboten.
  68. Das mitgelieferte Demo-Programm wurde mit dieser Libraray erstellt.
  69.  
  70.  
  71. Der Sprite-Editor (SPRITEED.EXE)
  72.  
  73. Um Sprites in eigenen Turbo-Pascal-Programmen einsetzen zu können, bedarf
  74. es eines Werkzeuges, welches die Erstellung von Sprites ermöglicht.
  75. Der Sprite-Editor erfüllt genau diese Funktion.
  76. Nach dem Starten des Editors erscheint ein Menü, daß Ihnen verschiedene
  77. Möglichkeiten der Sprite-Bearbeitung bietet. Sie wählen einen Menüpunkt an,
  78. indem Sie auf der Tastatur die zugehörige Zahlentaste drücken.
  79. Alle Manipulationen beziehen sich auf das aktuelle Sprite. Kurz nachdem
  80. Sie den Editor gestartet haben, gibt es jedoch noch kein aktuelles Sprite.
  81. Sie müssen erst eines erstellen. Es gibt zwei Möglichkeiten, ein aktuelles
  82. Sprite zu erstellen:
  83. 1. Sie definieren ein neues Sprite mit der Taste <1>
  84.    In diesem Fall erstellen Sie ein völlig neues Sprite. Falls es bereits
  85.    ein altes Sprite im Speicher gab, wird dieses nach einer Sicherheitsab-
  86.    frage gelöscht. Sie brauchen für das neue Sprite nur die Größe in X
  87.    (horizontal) und die Größe in Y (vertikal) jeweils im Bereich von
  88.    8 bis maximal 32 Pixeln anzugeben, danach ist dieses nun das aktuelle
  89.    Sprite. Allerdings besteht das Sprite zur Zeit nur aus Leerzeilen.
  90.    Die obige Beschränkung auf 8 bis 32 Pixel kann, bei der registrierten
  91.    Vollversion, auch im Source-Code des Sprite-Editors verändert werden.
  92.    Dies ist jedoch wenig sinnvoll, da erstens Sprites mit einer Größe von
  93.    weniger als 8 Pixeln kaum etwas darstellen können und zweitens Sprites
  94.    mit mehr als 32*32 Pixeln viel Rechenzeit zur Verschiebung brauchen.
  95.    Letzteres Format bietet Ihnen immerhin schon 1024 Positionen im Sprite!
  96.    Zwischen den Schranken ist jedes Format erlaubt, also auch 8*32, 32*8
  97.    oder auch 29*13.
  98. 2. Sie laden ein altes Sprite mit der Taste <4> ein.
  99.    Wählen Sie diesen Punkt an, so können Sie ein Sprite, welches Sie früher
  100.    einmal erstellt haben, nochmals bearbeiten.
  101.    Auch in diesem Fall wird ein eventuell vorhandenes altes Sprite im
  102.    Speicher nach einer Sicherheitsabfrage gelöscht.
  103.  
  104. Egal, ob Sie sich für das Laden oder die Neudefinition eines Sprites
  105. entschieden haben, nach diesem Vorgang kann dieses Sprite nun als aktuelles
  106. Sprite im Editor bearbeitet werden.
  107. Dazu muß die Taste <2> gedrückt werden. Sie gelangen dann in den eigentlichen
  108. Editor, der vollständig mit der Maus bedient wird.
  109. Es werden beide Tasten der Maus benutzt. Wenn Sie mit dem Mauszeiger auf ein
  110. Karo in der Zeichenebene zeigen und die linke Maustaste drücken, so setzen
  111. Sie dort die momentan eingestellte Vordergrundfarbe. Beim Druck auf die
  112. rechte Maustaste wird das Feld hingegen mit der aktuellen Hintergrundfarbe
  113. gefüllt. Die jeweils benutzte Vorder- bzw. Hintergrundfarbe können Sie
  114. jederzeit verändern, indem Sie mit dem Mauszeiger auf die von Ihnen
  115. gewünschte neue Farbe in den Buttons unter der Zeichenebene zeigen und die
  116. zugehörige Maustaste drücken. Wollen Sie hingegen erfahren, welche Farbe
  117. zur Zeit ausgewählt ist, drücken Sie die zugehörige Maustaste rechts außer-
  118. halb der Zeichenebene und der entsprechende Farbbutton flackert auf.
  119. Bei VGA- und EGA-Karten stehen Ihnen 16 verschiedene Farben zur Erstellung
  120. des Sprites zur Verfügung.
  121. Während Sie das Sprite erstellen, sehen Sie es als High-Res Zeichnung am
  122. rechten Rand des Bildschirmes so, wie es später bei einer Verwendung in
  123. einem Programm einmal aussehen wird.
  124. Wenn Sie den Editor genau betrachtet haben, werden Sie noch zwei Buttons
  125. sehen, die noch nicht erklärt worden sind. Mit dem <EXIT> Button verlassen
  126. Sie den Eingabeebene mit der Maus. Wenn Sie hingegen den <CLR> Button mit
  127. der linken Maustaste drücken, so wird die gesamte Ebene mit der aktuellen
  128. Hintergrundfarbe geflutet. Da jede Farbe Hintergrundfarbe sein kann, ist
  129. damit nicht nur das löschen der Ebene, sondern auch das Füllen mit einer
  130. beliebigen Farbe möglich.
  131.  
  132. Wenn Sie Ihr Sprite fertiggestellt haben, können (und sollten) Sie es mit
  133. der Taste <3> abspeichern. Danach können Sie es nochmals im Editor
  134. verändern oder auch mit der Taste <5> konvertieren.
  135. Nach dem Druck der Taste <5> erscheint ein komplettes Untermenü mit diversen
  136. Möglichkeiten der Nachbearbeitung des Sprites.
  137. Die ersten vier Optionen (<1>..<4>) geben Ihnen die Möglichkeit, das Sprite
  138. komplett nach oben, unten, rechts oder links zu verschieben. Dabei kann es
  139. jedoch immer nur soweit verschoben werden, wie sichergestellt ist, das keine
  140. Teile des Sprites aus der Zeichnung verschwinden. Anders ausgedrückt können
  141. immer nur Zeilen (Spalten) aus dem Sprite geschoben werden, die komplett
  142. mit der aktuellen Hintergrundfarbe gefüllt sind.
  143. Mit diesen 4 Optionen können Sie das Sprite nach Bedarf zentrieren. Manchmal
  144. stellt sich jedoch bei der Sprite-Erstellung heraus, daß man eigentlich mehr
  145. Platz benötigt, bzw. man stellt am Ende der Erstellung fest, daß das Sprite
  146. kleiner als erwartet geworden ist. In diesen Fällen kann auch die Größe
  147. des Sprites mit den Tasten <5>,<6> und <7> verändert werden. Dabei kann das
  148. Sprite entweder auf Maximalgröße (32*32) oder auf Minimalgröße (8*8 oder
  149. aber auch mehr) gebracht werden; es besteht jedoch auch die Möglichkeit,
  150. die Größe des Sprites neu vorzugeben. In den beiden letzten Fällen bleibt
  151. zu beachten, daß das Sprite nur soweit verkleinert wird, daß wiederum keine
  152. Sprite-Daten verloren gehen. So kann es sein, daß ein Sprite nicht verklei-
  153. nert werden kann, wenn es die Zeichenebene voll ausfüllt. Nach der Größen-
  154. bearbeitung ist meist eine neue Zentrierung erforderlich, da das Sprite
  155. immer in der linken oberen Ecke des neuen Zeichenfeldes abgebildet wird.
  156.  
  157. Mit all diesen Funktionen des Editors bezüglich Erstellung und Konvertierung
  158. der Sprites sollten Ihnen gute Sprites in relativ geringer Zeit gelingen.
  159. Achten Sie dabei bitte darauf, daß Sie die Sprites nicht größer als nötig
  160. machen, denn je größer ein Sprite ist, desto größer wird der zeitliche
  161. Aufwand bei der späteren Verschiebung des Sprites in Ihrem Programm!
  162. Andererseits sollten Ihre Sprites möglichst einheitliche Formate haben, denn
  163. dies erleichtert das Handling der Sprites später sehr.
  164.  
  165.  
  166. Nach der Erstellung eines oder auch mehrerer Sprites können Sie diese in
  167. ein erstes Turbo-Pascal-Programm einbinden. Dazu gibt es einen Ladebefehl
  168. in der SPRITLIB-TPU. Zuvor muß jedoch eine weitere Besonderheit dieses
  169. Programmpaketes erläutert werden.
  170. Vielleicht haben Sie sich gewundert, warum bisher nie die Rede von
  171. verschiedenen Grafik-Karten war. Tatsächlich können Sie ein Sprite gleich
  172. für mehrere Grafik-Karten erstellen. Das liegt daran, das der Sprite-Editor
  173. die Sprite-Daten in einem eigenen Format und nicht als Image speichert.
  174. Dieses Verfahren bietet mehrere Vorteile:
  175. 1. Sie können ein Programm mit Sprites ausrüsten, ohne daß Sie sozusagen
  176.    die "Sprite-Sources" mitliefern müssen.
  177. 2. Die Sprite-Sources können nachbearbeitet werden, die Sprite-Code-Files
  178.    hingegen nicht.
  179. 3. Beim Einsatz der Sprite-Sources ist eine automatische Anpassung an die
  180.    jeweils benutzte Grafik-Karte im Programmbetrieb möglich.
  181. Also: Der Sprite-Editor legt grundsätzlich die Sprites in 1028-Byte-Dateien
  182. ab. Diese Dateien sollten die Endung ".SPR" tragen und sind praktisch die
  183. Source-Dateien der Sprites, deshalb können sie im Sprite-Editor auch erneut
  184. bearbeitet werden. Eine Umwandlung in die kleineren Sprite-Code-Files, die
  185. die Endung ".SCF" tragen sollten, kann auf zweierlei Weise erfolgen:
  186. 1. Die Laderoutine der SPRITLIB kann beide Sorten von Sprites einladen.
  187.    Während ein Code-File sofort übernommen werden kann, muß ein Sources-File
  188.    zunächst in ein Code-File umgewandelt werden. Dies dauert etwas länger,
  189.    als das Laden des Code-Files. Außerdem wird das geladene Sprite für die
  190.    Dauer der Umwandlung auf dem Bildschirm sichtbar. Der Vorteil liegt
  191.    jedoch in der automatischen Anpassung an die Grafik-Karte, denn beim
  192.    Laden von Code-Files muß diese unbedingt zu den geladenen Sprites passen!
  193. 2. Das Umwandlungs-Programm SPR_KONV.EXE konvertiert die Sources-Files des
  194.    Sprite-Editors in sofort verwendbare Code-Files. Das Programm wird z.B.
  195.    wie folgt gestartet: SPR_KONV DRACULA.SPR DRACULA.SCF <RETURN>
  196.    Danach wandelt der Konverter die 1028-Byte-Datei DRACULA.SPR des Sprite-
  197.    Editors in eine kleine Code-Datei mit dem Namen DRACULA.SCF um. Das
  198.    Sprite wird dabei an die gerade vorhandene Grafik-Karte angepaßt.
  199.    Verfügen Sie also über eine VGA-Karte, liegt das Sprite in einem Format
  200.    für VGA-Karten vor, falls Sie hingegen eine HGC-Karte benutzen sollten,
  201.    ist das ".SCF"-Sprite genau für HGC-Karten angepaßt.
  202.  
  203. Ob Sie in Ihren Programmen lieber die ".SPR"-Dateien oder die ".SCF"-Dateien
  204. benutzen, bleibt eine Frage der Zielsetzung. Die Code-Dateien sind natürlich
  205. kürzer und sicherer, aber von Ihnen muß für jede erlaubte Grafik-Karte ein
  206. kompletter Satz vorhanden sein!
  207.  
  208.  
  209. Die Benutzung der Library (SPRITLIB.TPU)
  210.  
  211. Sie binden die Library in Ihre TP-Programme durch eine "uses"-Anweisung
  212. direkt nach dem Programm-Namen ein, also z.B.:
  213.  
  214. program meine_tollen_sprites;
  215. uses graph,spritlib;
  216.  
  217. Dadurch sind Sie im Programm in der Lage, die folgenden Anweisungen im
  218. Programmtext zu verwenden. Insgesamt stehen Ihnen 8 verschiedene Anweisungen
  219. der Sprite-Library zur Verfügung. Im Anschluß folgen die Deklarationen
  220. dieser Prozeduren und Funktionen. Bei der Eingabe der Anweisungen dürfen nur
  221. die Variablen (Großbuchstaben!) mit Semikolon und Kommata angegeben werden.
  222.  
  223. 1. Die Prozedur LOAD_SPRITE (FILENAME : String ; var NUMMER : Integer)
  224.  
  225. Mit dieser Anweisung wird das Sprite mit dem Pfad- und Dateinamen FILENAME
  226. von der Diskette oder Harddisk in das Programm eingeladen. Falls die
  227. Variable SPRITE_ERROR=0 ist, enthält Nummer nach dem Aufruf die Nummer
  228. dieses Sprites, unter der es in Zukunft angesprochen werden kann.
  229. Es können sowohl Sprite-Code-Files, wie auch Sprite-Source-Files geladen
  230. werden, wobei letztere noch automatisch umgewandelt werden. In JEDEM Fall
  231. muß der Rechner zum Zeitpunkt des Aufrufes dieser Funktion im GRAFIKMODUS
  232. sein, sonst kann das Sprite nicht verarbeitet werden!
  233.  
  234. 2. Die Prozedur UNLOAD_SPRITE (NUMMER : Integer)
  235.  
  236. Falls Sie an einer bestimmten Stelle des Programmes die Sprites wechseln
  237. wollen und alle Plätze bereits belegt sind, können Sie sich mit dieser Pro-
  238. zedur neuen Platz schaffen, indem Sie alte und nicht mehr benötigte Sprites
  239. aus dem Speicher löschen. Die Prozedur entfernt das Sprite mit der Nummer
  240. NUMMER aus dem Speicher. Danach kann diese Nummer von der Library für ein
  241. neues Sprite vergeben werden. In der Grundversion stehen 12 Sprites mit
  242. den Nummern 0 bis 11 zur Verfügung.
  243.  
  244. 3. Die Prozedur SHOW_SPRITE (NUMMER,X,Y,E,M : Integer)
  245.  
  246. Mit dieser Prozedur stellen Sie ein geladenes Sprite zum ersten Mal dar.
  247. Mit NUMMER geben sie die Nummer des Sprites an, welches Sie zeigen wollen.
  248. X und Y beschreiben die X- und Y-Koordinaten einer bestimmten Ecke des
  249. Sprites auf dem Grafik-Bildschirm. Mit E geben Sie die Ecke des Sprites an,
  250. auf die sich die Koordinaten beziehen sollen:
  251.  
  252.     links oben  e=0         rechts oben  e=1
  253.  
  254.     links unten e=3         rechts unten e=2
  255.  
  256. Mit dieser Angabe können Sie sich leichter auf Sprites einstellen, die sich
  257. auf etwas bewegen (e=2,e=3) oder an etwas hängen (e=0,e=1) und müssen nicht
  258. immer die Sprite-Größe dabei bedenken. Der letzte Parameter M gibt schließ-
  259. lich der Library Auskunft über die Methode mit der das Sprite mit dem
  260. Bildschirminhalt unter dem Sprite verknüpft werden soll. Der Wert von M
  261. darf zwischen 0 und 4 liegen. Was ein bestimmter Wert von M bewirkt, können
  262. Sie in Ihrem Turbo-Pascal-Handbuch bei der Beschreibung der PutImage-
  263. Prozedur nachlesen. Meistens verwendet man jedoch den Wert M=0.
  264.  
  265. 4. Die Prozedur MOVE_SPRITE (NUMMER,X,Y : Integer)
  266.  
  267. Haben Sie ein Sprite mittels SHOW_SPRITE irgendwo auf dem Bildschirm
  268. dargestellt, können Sie es mit dieser Prozedur von dort zu einer neuen
  269. Stelle des Bildschirmes transportieren. Das Sprite wird an der alten Stelle
  270. gelöscht und an der neuen Stelle wieder gezeichnet. Da sich dabei die
  271. Parameter E und M meistens nicht ändern, braucht bei dieser Prozedur
  272. nur die Nummer des angesprochenen Sprites mit seinen neuen Koordinaten
  273. X und Y an die Prozedur übergeben werden. Wollen Sie E und M neu setzen,
  274. benutzen Sie einfach HIDE_SPRITE und dann wieder SHOW_SPRITE.
  275. Zur Priorität von Sprites ist zu sagen, daß stets das zuletzt bewegte Sprite
  276. über den Sprites liegt, die länger als dieses Sprite nicht bewegt wurden.
  277.  
  278. 5. Die Prozedur HIDE_SPRITE (NUMMER : Integer)
  279.  
  280. Wollen Sie ein Sprite nicht verschieben, sondern es erstmal oder endgültig
  281. vom Bildschirm entfernen, rufen Sie diese Funktion auf. Sie brauchen nur
  282. die Nummer des betroffenen Sprites anzugeben und es wird an seiner
  283. augenblicklichen Position gelöscht. Das Sprite steht jedoch im Gegensatz
  284. zur UNLOAD_SPRITE Prozedur weiterhin zur Verfügung.
  285.  
  286. 6. Die Prozedur PRINT_SPRITE (NUMMER,X,Y,E,M : Integer)
  287.  
  288. Manchmal ist es wünschenswert, ein Sprite dauerhaft an einer Stelle abzu-
  289. bilden, es sozusagen an einen Ort zu "stempeln". Durch den Aufruf dieser
  290. Prozedur kann dieser Effekt erreicht werden. Die Parameter haben die
  291. gleiche Bedeutung wie bei SHOW_SPRITE beschrieben.
  292. Bei dieser Prozedur sind jedoch einige Besonderheiten gegeben:
  293. Der Aufruf der PRINT_SPRITE Prozedur ändert weder den Zustand des Sprites,
  294. noch seine Position. Dementsprechend muß des geprintete Sprite noch nicht
  295. einmal sichtbar, aber natürlich zumindest geladen worden sein.
  296. Der Hintergrund wird bei dieser Funktion nicht gesichert, was den Abdruck-
  297. vorgang sehr beschleunigt. Man kann auf diese Art und Weise ein Sprite zum
  298. schnellen Füllen einer Fläche mit einem Muster nutzen. Was jedoch unter der
  299. Fläche an Bildschirminformationen vorlag, geht verloren.
  300. Man könnte sagen, diese Prozedur überträgt eine Kopie des ausgewählten
  301. Sprites dauerhaft an eine beliebige Bildschirmposition.
  302.  
  303. 7. Die Prozedur SPRITE_POS (NUMMER : Integer ; var X,Y : Integer)
  304.  
  305. Die Prozedur liefert in den Variablen X und Y nach dem Aufruf die Position
  306. des Sprites mit der Nummer NUMMER zurück. In X und Y findet sich die X-
  307. bzw. die Y-Koordinate jener Ecke des Sprites, die beim Aufruf der Prozedur
  308. SHOW_SPRITE im Parameter E angegeben worden ist. Die Funktion ist nur auf
  309. sichtbare Sprites anwendbar.
  310.  
  311. 8. Die Funktion SPRITE_KOL (NUMMER : Integer) : boolean
  312.  
  313. Oftmals ist es erforderlich zu wissen, ob ein bestimmtes Sprite zur Zeit
  314. mit einem oder mehreren anderen Sprites kollidiert ist, ob also eine
  315. Überlagerung stattfindet. Die Funktion SPRITE_KOL liefert Ihnen nun einen
  316. booleschen Ausdruck dafür, den man etwa so verwenden kann:
  317.  
  318. IF sprite_kol(5) THEN mindestens_blechschaden ELSE tempo_erhöhen
  319.  
  320. Die Funktion liefert also den Wert TRUE für das Sprite mit der Nummer NUMMER,
  321. wenn es mit einem anderen Sprite kollidiert ist, ansonsten den Wert FALSE.
  322. Da es aber meistens von wesentlichem Interesse ist, mit welchem oder welchen
  323. Sprites ein Sprite kollidiert ist, legt die Library eine Kollisionsliste
  324. mit dem Namen KOL_LIST an. Dies ist ein boolesches Array, welches für jedes
  325. Sprite einen Eintrag bereithält. Nach dem Aufruf von SPRITE_KOL (NUMMER)
  326. kann für jedes definierte Sprite der Eintrag in dieser Liste abgefragt
  327. werden:
  328.  
  329. IF sprite_kol(5)  THEN BEGIN    {Falls Sprite 5 eine Kollision hatte, ist}
  330.    IF kol_list[0] THEN .....    {z.B. eine Kollision mit Sprite 0 erfolgt,}
  331.    IF kol_list[1] THEN .....    {oder auch noch mit Sprite Nummer 1 usw.}
  332.    ...
  333.    END
  334.  
  335. Auf diese Weise können alle relevanten Kollisionspartner überprüft werden.
  336. Eigenkollisionen eines Sprites mit sich selbst sind stets gegeben und werden,
  337. da sie keine Informationen liefern, unterdrückt. Im obigen Beispiel ist also
  338. KOL_LIST(5) stets FALSE, also unwahr.
  339. Das Feld KOL_LIST braucht (und darf !) genau wie die Variable SPRITE_ERROR
  340. nicht in Ihrem Programm definiert werden, da dies bereits die LIB besorgt.
  341.  
  342.  
  343. Alle oben beschriebenen Prozeduren und Funktionen sind nur dann korrekt
  344. und fehlerfrei ausgeführt worden, wenn nach ihrem Aufruf die Variable
  345. SPRITE_ERROR=0 war. Enthält SPRITE_ERROR hingegen einen Wert kleiner als
  346. Null, so hat das die folgenden Bedeutungen:
  347.  
  348.  SPRITE_ERROR     Bedeutung
  349.  
  350.        0          kein Fehler
  351.       -1          Rechner befindet sich nicht im Grafikmodus
  352.       -2          Sprite konnte nicht geladen werden (Datei-Lade-Fehler)
  353.       -3          Sprite konnte nicht geladen werden (falsches Datei-Format)
  354.       -4          Kein Platz für ein neues Sprite (kein Tabellenplatz)
  355.       -5          Kein Platz für ein neues Sprite (kein Speicherplatz)
  356.       -6          Die Nummer des Sprites ist in einem unzulässigen Bereich
  357.       -7          Sprite ist undefiniert (Nummer wurde nicht vergeben)
  358.       -8          Unerlaubte Koordinaten wurden für das Sprite angegeben
  359.       -9          Zusatzangaben unzulässig (E und M bei SHOW_SPRITE)
  360.      -10          Sprite ist zur Zeit hidden (unsichtbar)
  361.      -11          Die geladene Sprite-Code-Datei paßt nicht zur Grafik-Karte
  362.  
  363. Ich hoffe, daß Sie mit den obigen Fehlernummern möglichst wenig konfrontiert
  364. werden und wünsche Ihnen ein erfolgreiches Arbeiten mit SPRITLIB.TPU
  365.  
  366. Uwe Kuhring